package com.expert.miniapp.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * AIAnalysisConfigProperties - 分析报告AI API配置属性（Dify格式）
 *
 * 从application.yml读取ai.analysis配置
 * 用于生成匹配分析报告功能，调用Dify分析报告AI端点
 * 使用流式输出（streaming模式/SSE）
 *
 * @author System
 * @since 2025-11-06
 * @updated 2025-11-14 迁移到Dify API格式
 */
@Data
@Component
@ConfigurationProperties(prefix = "ai.analysis")
public class AIAnalysisConfigProperties {

    /**
     * Dify API端点URL
     * 分析报告AI: https://wpe8xarnv3xz6z1d.ai-plugin.io/v1/chat-messages
     */
    private String url;

    /**
     * Dify API认证密钥
     * app-DerklWxkjYSKzHmWmuILybha
     */
    private String key;

    /**
     * 响应模式
     * Dify支持: blocking（非流式）或streaming（流式）
     * 默认: streaming（SSE流式输出）
     */
    private String responseMode = "streaming";

    /**
     * 使用的AI模型
     * 默认: gpt-4o
     */
    private String model = "gpt-4o";

    /**
     * 请求超时时间(毫秒)
     * 默认: 180000 (180秒)
     */
    private Integer timeout = 180000;

    /**
     * 最大重试次数
     * 默认: 1
     */
    private Integer maxRetries = 1;

    /**
     * 重试间隔时间(毫秒)
     * 默认: 5000 (5秒)
     */
    private Integer retryDelay = 5000;
}
